Non-volatile data storage devices have enabled increased portability of data and software applications. For example, multi-level cell (MLC) storage elements of a flash memory device may each store multiple bits of data, enhancing data storage density as compared to single-level cell (SLC) flash memory devices. Consequently, memory devices enable users to store and access a large amount of data.
As a number of bits stored per cell increases, errors in stored data typically increase (e.g., due to noise and other factors). A data storage device may encode and decode data using an error correcting code (ECC) technique. The ECC technique may enable error correction. For example, data may be stored with ECC information (e.g., parity bits) to enable correction of errors that may be present in the data. In some cases, data stored at the data storage device may include a large number of errors (e.g., due to noise or other factors). To illustrate, one or more write errors may occur during a write operation. A write error may be caused by applying too many or too few programming signals to a storage element of the data storage device (i.e., by over-programming or under-programming the storage element). In this case, an error rate of data may exceed an error correction capability associated with the particular ECC scheme used by the data storage device, which may result in data loss.